りおんクロニクル


SQLite × Dapper入門|軽量・高速なCRUD実装ガイド【2026年版】

Home【2026年版】C# / .NET入門と実践ガイド|基礎・業務アプリ開発・SQLite連携まで体系的に解説

SQLiteはファイル1つで完結する軽量データベース、Dapperは極めて軽いマイクロORM。 この2つを組み合わせると、業務アプリや小規模ツールで高速・シンプルなデータアクセスを実現できます。

この記事でわかること
・SQLite × Dapper の基本構成
・INSERT / UPDATE / DELETE / SELECT の実装
・モデルクラスの作り方とマッピング
・トランザクションの書き方
・業務アプリ向けベストプラクティス

1. SQLite × Dapper の特徴

2. モデルクラスを定義する

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int? Age { get; set; }
}

3. 接続の基本(C#例)

using System.Data;
using Microsoft.Data.Sqlite;
using Dapper;

var connectionString = "Data Source=sample.db";

using IDbConnection connection = new SqliteConnection(connectionString);
connection.Open();

4. SELECT(一覧取得)

var users = connection.Query<User>(
    "SELECT Id, Name, Age FROM Users"
).ToList();

foreach (var u in users)
{
    Console.WriteLine($"{u.Id}, {u.Name}, {u.Age}");
}

ポイント

5. INSERT(追加)

var sql = "INSERT INTO Users (Name, Age) VALUES (@Name, @Age)";

connection.Execute(sql, new {
    Name = "Taro",
    Age = 25
});

6. UPDATE(更新)

var sql = "UPDATE Users SET Age = @Age WHERE Id = @Id";

connection.Execute(sql, new {
    Age = 30,
    Id = 1
});

7. DELETE(削除)

var sql = "DELETE FROM Users WHERE Id = @Id";

connection.Execute(sql, new {
    Id = 1
});

8. WHERE付きSELECT(検索)

var users = connection.Query<User>(
    "SELECT * FROM Users WHERE Age > @Age",
    new { Age = 20 }
).ToList();

9. 1件取得(QueryFirst / Single)

var user = connection.QueryFirstOrDefault<User>(
    "SELECT * FROM Users WHERE Id = @Id",
    new { Id = 1 }
);

10. トランザクションを使う

using var tran = connection.BeginTransaction();

try
{
    connection.Execute(
        "INSERT INTO Users (Name, Age) VALUES (@Name, @Age)",
        new { Name = "A", Age = 20 },
        transaction: tran
    );

    connection.Execute(
        "INSERT INTO Users (Name, Age) VALUES (@Name, @Age)",
        new { Name = "B", Age = 30 },
        transaction: tran
    );

    tran.Commit();
}
catch
{
    tran.Rollback();
    throw;
}

11. ベストプラクティス

まとめ:SQLite × Dapper は“軽量・実務向け”の最適解

小〜中規模のアプリで「速く・シンプルに・壊れにくく」作りたいなら、 SQLite × Dapper は非常にコスパの良い選択肢です。 この記事をベースに、自分のプロジェクトに組み込んでみてください。

前のページ  次のページ